package br.ufrn.cerescaico.sepe.bo;

import br.ufrn.cerescaico.sepe.Sepe;
import br.ufrn.cerescaico.sepe.beans.Perfil;
import br.ufrn.cerescaico.sepe.beans.Usuario;
import br.ufrn.cerescaico.sepe.dao.Dao;
import br.ufrn.cerescaico.sepe.dao.PerfilDao;
import br.ufrn.cerescaico.sepe.dao.UsuarioDao;
import br.ufrn.cerescaico.sepe.dao.util.DataAccessLayerException;
import java.util.List;
import org.apache.log4j.Logger;

/**
 * Classe de negócio do bean Perfil do sistema Sepe.
 * @author Taciano Morais Silva
 * @version 01/10/2010, 15h27m
 * @since 01/10/2010, 15h27m
 */
public class PerfilBO extends AbstractBO {

    /**
     * Logger.
     */
    private Logger logger = Logger.getLogger(PerfilBO.class);

    /**
     * 
     * @param Sepe
     */
    public PerfilBO(Sepe Sepe) {
        super(Sepe);
    }

    /**
     * Lista todos os perfis cadastrados no sistema.
     * @return A lista de perfis.
     */
    public List<Perfil> listar() throws SepeException {
        try {
            Dao<Perfil> dao = new PerfilDao();
            return dao.findAll();
        } catch (DataAccessLayerException ex) {
            logger.error(ex.getMessage(), ex);
            throw new SepeException("erro.perfil.bo.listar", ex);
        }
    }

    /**
     * Busca o perfil a partir do seu identificador.
     * @param id O identificador do perfil.
     * @return O perfil localizado.
     */
    public Perfil buscar(Integer id) throws SepeException {
        try {
            Dao<Perfil> dao = new PerfilDao(getSepe());
            return dao.find(id);
        } catch (DataAccessLayerException ex) {
            logger.error(ex.getMessage(), ex);
            throw new SepeException("erro.perfil.bo.buscar", ex);
        }
    }
}
